group { name: "elm/actionslider/base/default";
   parts {
      part { name: "bg"; type: RECT; mouse_events: 0;
         scale: 1;
         description { state: "default" 0.0;
            min: 120 20;
            color_class: "/bg/normal/actionslider/base";
         }
         description { state: "disabled" 0.0;
            inherit: "default" 0.0;
            color_class: "/bg/disabled/actionslider/base";
         }
      }
      part { name: "icon_dragable_area"; type: SPACER;
         description { state: "default" 0.0;
            rel.to: "bg";
         }
      }
      part { name: "elm.text.left"; type: TEXT;
         scale: 1;
         description { state: "default" 0.0;
            color_class: "/fg/normal/actionslider/left";
            rel1.offset: 4 4;
            rel2.offset: -5 -5;
            text { font: FN; size: 10;
               align: 0.0 0.5;
               min: 1 1;
               ellipsis: -1;
               text_class: "button";
            }
            offscale;
         }
         description { state: "disabled" 0.0;
            inherit: "default" 0.0;
            color_class: "/fg/disabled/actionslider/left";
         }
      }
      part { name: "elm.text.center"; type: TEXT;
         scale: 1;
         description { state: "default" 0.0;
            color_class: "/fg/normal/actionslider/center";
            rel1.offset: 4 4;
            rel2.offset: -5 -5;
            text { font: FN; size: 10;
               align: 0.5 0.5;
               min: 1 1;
               ellipsis: -1;
               text_class: "button";
            }
            offscale;
         }
         description { state: "disabled" 0.0;
            inherit: "default" 0.0;
            color_class: "/fg/disabled/actionslider/center";
         }
      }
      part { name: "elm.text.right"; type: TEXT;
         scale: 1;
         description { state: "default" 0.0;
            color_class: "/fg/normal/actionslider/right";
            rel1.offset: 4 4;
            rel2.offset: -5 -5;
            text { font: FN; size: 10;
               align: 1.0 0.5;
               min: 1 1;
               ellipsis: -1;
               text_class: "button";
            }
            offscale;
         }
         description { state: "disabled" 0.0;
            inherit: "default" 0.0;
            color_class: "/fg/disabled/actionslider/right";
         }
      }
      part { name: "elm.drag_button_base"; type: SWALLOW; mouse_events: 0;
         scale: 1;
         description { state: "default" 0.0;
            fixed: 1 1;
            min: 40 20;
            align: 0.5 0.5;
            rel1.to: "icon_dragable_area";
            rel2 {
               relative: 0.0 1.0;
               to: "icon_dragable_area";
            }
         }
         dragable {
            confine: "icon_dragable_area";
            x: 1 1 0;
            y: 0 0 0;
         }
      }
      part { name: "elm.drag_button"; type: RECT;
         scale: 1;
         description { state: "default" 0.0;
            min: 40 20;
            color: 0 0 0 0; // no cc
            rel1.to_x: "elm.drag_button_base";
            rel1.to_y: "icon_dragable_area";
            rel2.to_x: "elm.drag_button_base";
            rel2.to_y: "icon_dragable_area";
         }
         dragable {
            events: "elm.drag_button_base";
         }
      }
      part { name: "drag_button"; type: RECT; mouse_events: 0;
         description { state: "default" 0.0;
            rel.to: "elm.drag_button";
            color_class: "/bg/normal/actionslider/button";
         }
         description { state: "disabled" 0.0;
            inherit: "default" 0.0;
            color_class: "/bg/disabled/actionslider/button";
         }
         description { state: "clicked" 0.0;
            inherit: "default" 0.0;
            color_class: "/bg/pressed/actionslider/button";
         }
      }
      part { name: "elm.text.indicator"; type: TEXT; mouse_events: 0;
         scale: 1;
         description { state: "default" 0.0;
            rel.to: "drag_button";
            rel1.offset: 4 4;
            rel2.offset: -5 -5;
            color_class: "/fg/normal/actionslider/button";
            text {
               font: FN; size: 10;
               align: 0.5 0.5;
               min: 0 1;
               text_class: "check_off_text";
            }
         }
         description { state: "disabled" 0.0;
            inherit: "default" 0.0;
            color_class: "/fg/disabled/actionslider/button";
         }
         description { state: "clicked" 0.0;
            inherit: "default" 0.0;
            color_class: "/fg/pressed/actionslider/button";
         }
      }
      part { name: "disabler"; type: RECT;
         description { state: "default" 0.0;
            color: 0 0 0 0; // no cc
            visible: 0;
         }
         description { state: "disabled" 0.0;
            inherit: "default" 0.0;
            visible: 1;
         }
      }
   }
   programs {
      program { signal: "mouse,up,1"; source: "elm.drag_button";
         action: SIGNAL_EMIT "elm,action,up,drag_button" "elm";
         after: "button_unclick_anim";
      }
      program { name: "button_unclick_anim";
         action: STATE_SET "default" 0.0;
         target: "drag_button";
         target: "elm.text.indicator";
      }
      program { signal: "mouse,down,1*"; source: "elm.drag_button";
         action: SIGNAL_EMIT "elm,action,down,drag_button" "elm";
         after: "button_click_anim";
      }
      program { name: "button_click_anim";
         action: STATE_SET "clicked" 0.0;
         target: "drag_button";
         target: "elm.text.indicator";
      }
      program { signal: "mouse,move"; source: "elm.drag_button_base";
         action: SIGNAL_EMIT "elm,action,move,drag_button" "elm";
      }
      program { signal: "mouse,down,1*"; source: "elm.text.right";
         action: SIGNAL_EMIT "elm,action,down,right" "elm";
      }
     program { signal: "mouse,down,1*"; source: "elm.text.left";
         action: SIGNAL_EMIT "elm,action,down,left" "elm";
      }
     program { signal: "mouse,down,1*"; source: "elm.text.center";
         action: SIGNAL_EMIT "elm,action,down,center" "elm";
      }
      program { signal: "elm,state,disabled"; source: "elm";
         action: STATE_SET "disabled" 0.0;
         target: "bg";
         target: "drag_button";
         target: "disabler";
         target: "elm.text.left";
         target: "elm.text.center";
         target: "elm.text.right";
         target: "elm.text.indicator";
      }
      program { signal: "elm,state,enabled"; source: "elm";
         action: STATE_SET "default" 0.0;
         target: "bg";
         target: "drag_button";
         target: "disabler";
         target: "elm.text.left";
         target: "elm.text.center";
         target: "elm.text.right";
         target: "elm.text.indicator";
      }
   }
}

group { name: "elm/actionslider/base/bar";
   inherit: "elm/actionslider/base/default";
   parts {
      part { name: "bar"; type: RECT; mouse_events: 0;
         insert_before: "elm.drag_button_base";
         description { state: "default" 0.0;
            color_class: "/bg/normal/actionslider/bar";
            rel1.to: "bg";
            rel2 {
               relative: 0.0 1.0;
               to_x: "elm.drag_button_base";
               to_y: "bg";
            }
         }
      }
   }
}
